package com.jsu.clubmanagementsystem.service.club;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jsu.clubmanagementsystem.common.PageQueryRequest;
import com.jsu.clubmanagementsystem.model.dto.clubannouncement.ClubAnnouncementQueryRequest;
import com.jsu.clubmanagementsystem.model.entity.ClubAnnouncement;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jsu.clubmanagementsystem.model.vo.clubAnnouncement.ClubAnnouncementVO;
import com.jsu.clubmanagementsystem.model.vo.clubAnnouncement.ListAnnouncementVO;

import java.util.List;

/**
* @author 24753
* @description 针对表【club_announcement(社团公告)】的数据库操作Service
* @createDate 2025-05-13 17:19:16
*/
public interface ClubAnnouncementService extends IService<ClubAnnouncement> {

    void validateAnnouncement(ClubAnnouncement announcement);

    ClubAnnouncementVO getAnnouncementVo(ClubAnnouncement announcement);

    ClubAnnouncementVO getAnnouncementVoById(Long id);

    ClubAnnouncement getByIdIncludeDeleted(Long id);

    List<ClubAnnouncement> getAllLogicAnnouncements(ClubAnnouncementQueryRequest queryRequest);

    Page<ClubAnnouncementVO> getAnnouncementVoPage(Page<ClubAnnouncement> page);

    Page<ListAnnouncementVO> getAllAnnouncements(PageQueryRequest page);

    boolean deleteAnnouncements(List<Long> announcementIds);

    boolean addClubAnnouncement(ClubAnnouncement announcement);

}
